Method and System for Reducing Durations of Sessions

ABSTRACT

Methods and devices for reducing durations of sessions (e.g., voice call sessions, chat sessions, etc.) include a mobile device that is configured to receive an instruction message from a customer service center associated with an enterprise, and in response, determine whether the mobile device user has engaged the customer service center associated with the enterprise within a proceeding duration. The mobile device may select a media element based on the received instruction message in response to determining that the mobile device user has engaged the customer service center associated with the enterprise within the proceeding duration. The mobile device may render the selected media element on a screen of the mobile device until the mobile device user interacts with the mobile device or the rendered media element.

RELATED APPLICATIONS

This application is a continuation in part of U.S. patent applicationSer. No. 15/157,459, entitled “System And Method For DisplayingAdvertisements On Mobile Telephone Devices After A Call” filed Aug. 24,2017, which claims the benefit of priority to U.S. ProvisionalApplication No. 62/297,688, entitled “System And Method For DisplayingAdvertisements On Mobile Devices After A Call” filed Feb. 19, 2016, theentire contents of all of which are hereby incorporated by reference forall purposes.

BACKGROUND

Advertising on mobile devices, such as smartphones, is increasingly usedby advertisers to reach a wide audience of consumers. One advantage ofmobile advertising over traditional advertising is that the mobileadvertisements on smartphones may be narrowly tailored to the users ofthe smartphones. For example, mobile advertising networks such as AdMobfor Android platform or iAds for iOS platform may use a targetingalgorithm to select mobile ads deemed to be of interest to smartphoneusers based on information known about the users. Leveraging userinformation for targeted mobile advertising enables the advertisers toreach consumers as efficiently as possible. Users benefit by being ableto view ads that are of their interest. Developers of mobileapplications commonly use mobile ads to monetize the apps.

US Patent Publication No. 20150120442 is directed toward targeted mobileadvertising directed at users of multiple subscriber identity modules(SIM) in a telephone. The method disclosed directs advertisements to theuser's mobile phone based on whether the SIM is used for work orpersonal communication. US Patent Publication No. US20130151343 to Phanintroduces a method of monitoring physical activity of a telephone uservia sensors on the telephone, to target advertisements.

SUMMARY

In one aspect, the present application discloses methods, systems, anddevices for displaying media on a mobile telephone device. In an aspect,the method may include determining by a mobile telephone device that atelephone call has been initiated between the mobile telephone deviceand another device, determining by the mobile telephone device atelephone number of the second telephone device, determining by themobile telephone device that the telephone number of the secondtelephone device matches a campaign telephone number stored on themobile telephone device, determining a media object to display based onthe telephone number, downloading the media object on the mobiletelephone device, determining by the mobile telephone device that thetelephone call has ended, and displaying the media object on the mobiletelephone device after the telephone call has ended. In some aspects,the media object may be an advertisement. In some aspects, the telephonecall may be an outgoing call by the mobile telephone device. In someaspects, the media object may be determined based on an identityassociated with the mobile telephone device. In some aspects, the mediaobject may be downloaded during the call. In some aspects, the mediaobject may be downloaded after the call. In some aspects, a list ofcampaign telephone numbers may be received by the mobile telephonedevice from a server computing device before the telephone call isinitiated. In some aspects, the list of campaign telephone numbers maythen be stored on the mobile telephone computing device.

In some aspects, the method may include determining by a mobiletelephone device that a telephone call has been initiated between themobile telephone device and a second telephone device, determining bythe mobile telephone device a telephone number of the second telephonedevice, delivering by a mobile telephone device the telephone number ofthe second telephone device to a server computing device, determining amedia object to display based on the telephone number, downloading themedia object on the mobile telephone device, determining by the mobiletelephone device that the telephone call has ended, and displaying themedia object on the mobile telephone device after the telephone call hasended. In some aspects, the media object may be an advertisement. Insome aspects, the telephone call may an outgoing call by the mobiletelephone device. In some aspects, the media object may be determinedbased on an identity associated with the mobile telephone device. Insome aspects, the media object may be downloaded during the call. Insome aspects, the media object may be downloaded after the call.

The aspects may include methods, systems, and devices for deliveringmedia to a mobile telephone device. In some aspects, the method mayinclude sending a notification from a server computing device to amobile telephone device, receiving by the server computing device a callto download a media object from the mobile computing device after atelephone call is initiated between the mobile telephone device and asecond telephone device having a telephone number from the list ofcampaign telephone numbers, determining that the mobile telephone deviceis eligible to receive the media object, and delivering the media objectto the mobile telephone device. In some aspects, the notification mayinclude a campaign ID and a list of campaign telephone numbers. In someaspects, the media object may be displayed on the mobile telephonedevice after the telephone call is terminated. In some aspects, themedia object may be an advertisement. In some aspects, the telephonecall may be an outgoing call by the mobile telephone device. In someaspects, the media object may be downloaded during the call. In someaspects, the media object may be downloaded after the call.

Further aspects may include methods of reducing durations of sessions(e.g., voice calls, data sessions, chat sessions, etc.) by receiving,via a processor in a mobile device, an instruction message from acustomer service center associated with an enterprise, determining bythe processor whether a mobile device user has engaged the customerservice center associated with the enterprise within a proceedingduration, selecting by the processor a media element based on thereceived instruction message in response to determining that the mobiledevice user has engaged the customer service center associated with theenterprise within the proceeding duration, and rendering by theprocessor the selected media element on a screen of a mobile device ofthe mobile device user until the mobile device user interacts with themobile device or the rendered media element.

In some aspects, determining whether the mobile device user has engagedthe customer service center associated with the enterprise within theproceeding duration may include determining whether a text message hasbeen sent from the mobile device to customer service center associatedwith the enterprise within the proceeding duration, and selecting themedia element based on the received instruction message in response todetermining that the mobile device user has engaged the customer servicecenter associated with the enterprise within the proceeding duration mayinclude selecting the media element based on the received instructionmessage in response to determining that a text message has been sentfrom the mobile device to customer service center associated with theenterprise within the proceeding duration.

In some aspects, determining whether the text message has been sent fromthe mobile device to customer service center associated with theenterprise within the proceeding duration may include determining atleast one or more of determining whether a short message service (SMS)message has been sent from the mobile device to customer service centerassociated with the enterprise within the proceeding duration,determining whether a multimedia messaging service (MMS) message hasbeen sent from the mobile device to customer service center associatedwith the enterprise within the proceeding duration, or determiningwhether an instant messaging (IM) message has been sent from the mobiledevice to customer service center associated with the enterprise withinthe proceeding duration.

In some aspects, determining whether the mobile device user has engagedthe customer service center associated with the enterprise within theproceeding duration may include determining whether a voice call hasbeen established between the mobile device and the customer servicecenter associated with the enterprise, and selecting the media elementbased on the received instruction message in response to determiningthat the mobile device user has engaged the customer service centerassociated with the enterprise within the proceeding duration mayinclude selecting the media element based on the received instructionmessage in response to determining that the voice call has beenestablished between the mobile device and the customer service centerassociated with the enterprise.

In some aspects, rendering the selected media element on the screen ofthe mobile device of the mobile device user until the mobile device userinteracts with the mobile device or the rendered media element mayinclude rendering the selected media element on the screen of the mobiledevice prior to terminating the voice call to the customer servicecenter associated with the enterprise and until the mobile device userinteracts with the mobile device or the rendered media element. In someaspects, receiving the instruction message from the customer servicecenter associated with the enterprise may include receiving a command totrigger a campaign on the mobile device, wherein the command is selectedby a server or a customer service representative based on at least oneor more of a question asked by the mobile device user via a text messagesent from the mobile device to customer service center, or a questionasked by the mobile device user during a voice call between the mobiledevice and the customer service center.

In some aspects, the methods may further include monitoring activitiesof the mobile device user, and predicting, based on at least one of themonitored activities or information received from a server device, areason that the mobile device user has engaged the customer servicecenter. In some aspects, the methods may further include sending thepredicted reason to a server associated with the customer servicecenter. In some aspects, selecting the media element based on thereceived instruction message in response to determining that the deviceuser has engaged the customer service center associated with theenterprise within the proceeding duration may include selecting themedia element based on the predicted reason that the mobile device userhas engaged the customer service center.

Further aspects include a mobile device having a memory, wirelesstransceiver and a processor coupled to the memory and wirelesstransceiver and configured with processor-executable instructions toperform operations corresponding to any of the operations summarizedabove. Further aspects include a mobile device having means forperforming functions corresponding to any of the operations summarizedabove. Further aspects include a non-transitory processor-readablestorage medium having stored thereon processor-executable instructionsconfigured to cause a processor of a mobile device to perform operationscorresponding to any of the operations summarized above.

Further aspects include a server computing device having a memory,communications circuitry, and a server processor configured withprocessor-executable instructions to perform operations corresponding toany of the operations summarized above. Further aspects include a servercomputing device having means for performing functions corresponding toany of the methods summarized above. Further aspects include anon-transitory processor-readable storage medium having stored thereonprocessor-executable instructions configured to cause a server processorof a server computing device to perform operations corresponding to anyof the methods summarized above.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated herein and constitutepart of this specification, illustrate example embodiments of theinvention, and, together with the general description given above andthe detailed description given below, serve to explain features of theinvention.

FIG. 1 illustrates an exemplary method for displaying advertisements onmobile telephone devices at the end of a call to a pre-designatednumber.

FIG. 2 illustrates an exemplary system architecture.

FIG. 3 illustrates an exemplary embodiment of a system for delivering atargeted advertisement to a mobile user at the end of a call.

FIG. 4 illustrates an embodiment for a method of creating anadvertisement campaign.

FIG. 5 illustrates an embodiment for a method of retrieving a telephonenumber campaign from a server via a cloud messaging notification.

FIG. 6 illustrates an embodiment for a method to display anadvertisement after an end-of-call event.

FIGS. 7 and 8 are process flow diagrams illustrating methods of reducingcalls to a customer service center of an enterprise (e.g., atelecommunications service provider) in accordance with variousembodiments.

FIGS. 9 through 15 are illustrations of example user interactions anduser interfaces of mobile device configured to redirect mobile deviceusers to using a web-based access or control mechanism (e.g., operatorapps, etc.) to self-manage their own accounts in accordance with someembodiments.

FIG. 16 is a process flow diagram illustrating a method of driving usageof operator apps and web-based systems in accordance with an embodiment.

FIGS. 17 and 18 are process flow diagrams illustrating methods ofproactively selecting and rendering media elements in accordance withvarious embodiments.

FIG. 19 is a process flow diagram illustrating a method of redirectingcalls to a customer service center of an enterprise in accordance withsome embodiments.

FIGS. 20, 21A, 21B and 22 are process flow diagrams illustrating methodsof reducing the durations of sessions or client engagements with acustomer service center (e.g., reducing the average durations of callsto the center) in accordance with some embodiments.

FIG. 23 is a component block diagram illustrating an example computingsystem architecture that may be used in mobile devices implementing thevarious embodiments.

FIG. 24 is a component block diagram illustrating a wireless devicesuitable for implementing various embodiments.

DETAILED DESCRIPTION

Various embodiments will be described in detail with reference to theaccompanying drawings. Wherever possible, the same reference numberswill be used throughout the drawings to refer to the same or like parts.References made to particular examples and implementations are forillustrative purposes, and are not intended to limit the scope of theclaims.

The word “exemplary” is used herein to mean “serving as an example,instance, or illustration.” Any implementation described herein“exemplary” is not necessarily to be construed as advantageous overother implementations.

The terms “mobile device”, “cellular device”, and “wireless device” maybe used interchangeably and refer to any one of the various cellulartelephones, smart phones, multimedia enabled cellular telephones andsimilar electronic devices which include a programmable processor, amemory and circuitry for sending and receiving wireless communicationsignals. In an embodiment, the wireless device is a cellular handhelddevice (e.g., a mobile device), which may communicate via a cellulartelephone communication network.

The tell is “app”, “application”, “program”, and “software” may be usedinterchangeably and may include standalone applications, SDKs, andmodules of applications or operating systems.

Some embodiments include methods, systems, and devices for displayingadvertisements on mobile telephone devices at the end of a call to apre-designated number. In some embodiments, the system may includesoftware and decision engines that may be configured to store one ormore advertisement campaigns, a set of rules for triggering anadvertisement to a caller, and to send an advertisement to a caller viaa messaging service. The system may interact with the mobile user via amobile application installed on the user's device. When a call isdetected to a designated number, the system may send an advertisement tothe caller's mobile telephone device based on trigger conditions at theend of the call. The system may enable an advertiser to deliver targetedadvertisements to a mobile user, which may be mutually beneficial.

FIG. 1 shows a method for displaying advertisements on mobile telephonedevices at the end of a call to a pre-designated number. A correspondingexemplary system architecture is shown in FIG. 2. At step 101 one ormore telephone numbers associated with an advertisement campaign may beentered on an advertiser computing device 201. The telephone numbers maybe delivered to an advertisement server computing device 208. At step102 one or more media elements may be selected on the advertisercomputing device 201 to be displayed on a subscriber mobile telephonedevice 222 after the completion of a telephone call on the subscribermobile telephone device 222 with one of the telephone numbers. The mediaelements may be delivered to an advertisement server computing device208.

At step 103, one or more of the telephone numbers may be delivered fromthe advertisement server computing device 208 to one or more subscribermobile telephone devices 222 using a message and/or a notification. Inan embodiment, a separate messaging server 241 may be used to deliverthe notification to the subscriber mobile telephone device 222. At step104 the telephone numbers may be stored on the subscriber mobiletelephone device 222.

At step 105 the subscriber mobile telephone device 222 may determinethat a telephone call has been initiated. In an embodiment, thetelephone call may be an outgoing call initiated by the subscribermobile telephone device. In an alternative embodiment, the telephonecall may be an incoming call to the subscriber mobile telephone device.At step 106 the subscriber mobile telephone device 222 may determine thetelephone number of the call.

At step 107 the subscriber mobile telephone device 222 may determinewhether the telephone number matches one of the telephone numbers storedon the subscriber mobile telephone device 222. If the telephone numbermatches, at step 111 the system may determine the media to display. Inan embodiment, the media may be an advertisement. At step 112 thesubscriber mobile telephone device 222 may download the media. In anembodiment, media may be streamed from the server and displayed on thesubscriber mobile telephone device 222 in real-time based on networkconditions.

At step 113, the subscriber mobile telephone device 222 may determinethat the call has ended. In response, the media may be displayed on thesubscriber mobile telephone device 222 at step 114.

If at step 107 the subscriber mobile telephone device 222 determinesthat the number does not match a number stored on the subscriber mobiletelephone device 222, the subscriber mobile telephone device 222 maydeliver the telephone number to the advertisement server computingdevice 208 at step 108. At step 109 the advertisement server computingdevice 208 may determine whether the telephone number matches one of thetelephone numbers associated with an advertisement campaign. If thetelephone number does not match, the system may determine not to displaythe media at step 110. If the telephone number matches, the system maydetermine the media to display at step 111. At step 112 the subscribermobile telephone device 222 may download the media. At step 113, thesubscriber mobile telephone device 222 may determine that the call hasended. In response, the media may be displayed on the subscriber mobiletelephone device 222 at step 114.

In an embodiment, if at step 109 the advertisement server computingdevice 208 determines that the telephone number does not match one ofthe telephone numbers associated with an advertisement campaign, themedia is not displayed. In an alternative embodiment, the system maydetermine the media to display based on the subscriber mobile telephonedevice 222.

FIG. 2 illustrates an exemplary system architecture according to oneembodiment. The system 200 may include one or more advertiser computingdevices 201, one or more subscriber mobile telephone devices 222, one ormore advertisement server computing devices 208, and one or moremessaging servers 241. The computing devices 201, 222, 208, 241 may beconfigured to communicate over the network 246.

Computing devices 201, 222, 208, 241 may include various componentsincluding but not limited to one or more processing units 203, 210, 224,243, memory units 206, 211, 227, 244, video or display interfaces 204,225, network interfaces 202, 209, 223, 242, input/output interfaces 205,226, video recording units, and buses that connect the various units andinterfaces 205, 226. The network interfaces 202, 209, 223, 242 mayenable the computing devices 201, 222, 208, 241 to connect to thenetwork 246. The memory units 206, 211, 227, 244 may include randomaccess memory (RAM), read only memory (ROM), electronic erasableprogrammable read-only memory (EEPROM), and basic input/output system(BIOS). The memory units 206, 211, 227, 244 may include other storageunits such as non-volatile storage including magnetic disk drives,optical drives, flash memory and the like.

While FIG. 2 depicts one advertiser computing device 201, one subscribermobile telephone device 222, one advertisement server computing device208, one messaging server 241, and one network 246, this is meant asmerely exemplary. Alternatively, any number of computing devices 201,222, 208, 241, or networks 246 may be present. Some or all of thecomponents of the computing devices 201, 222, 208, 241 may be combinedinto a single component. Likewise, some or all of the components of thecomputing devices 201, 222, 208, 241 may be separated into distinctcomponents connected through the network 246.

The modules of computing devices 201, 222, 208, 241 may be implementedas software code to be executed by a processing unit 203, 210, 224, 243using any suitable computer language. The software code may be stored asa series of instructions or commands in a memory unit 206, 211, 227,244. While specific modules are shown as part of specific computingdevices 201, 222, 208, 241, modules may additionally or alternatively beintegrated into any of the other computing devices 201, 222, 208, 241.Any of the described modules may be standalone applications, part of thedevice operating system, or incorporated into other modules orapplications.

Advertiser computing device 201 may include a campaign module 207.Subscriber mobile telephone devices 222 may include a telephone module228 and an advertisement module 229. Subscriber mobile telephone devices222 may include locally stored campaign IDs 230 and telephone numbers240.

Advertisement server computing device 208 may include a campaign module212, an engine module 213, a Number Domain Registry (NDR) module 214, asubscriber module 215, an identity module 216, and a notification module217. Advertisement server computing device 208 may include a media setdatabase 218, a media database 220, an NDR 219 repository, and asubscriber database 221.

System 200 may incorporate a messaging server 241 configured to delivermessages to subscriber mobile telephone devices 222. Messaging servers241 may include a notification module 245. In an embodiment, themessaging server 241 may be a separate device from the advertisementserver computing device 208. In an alternative embodiment, theadvertisement server computing device 208 and the messaging server 241may be combined into a single device.

Campaign modules 207, 212 may be configured to create media campaigns.Telephone module 228 may be configured to communicate with othertelephone devices over a telephone network. Advertisement module 229 maybe configured to receive notifications and/or messages containingcampaign IDs and campaign telephone numbers, store containing campaignIDs and campaign telephone numbers, determine whether a called number isassociated with a campaign, determine when to display an advertisement,determine which advertisement to display, retrieve advertisement media,and display the advertisement. In an embodiment, advertisement module229 may incorporated into telephone module 228 or any other applicationon the subscriber mobile telephone device 222.

Engine module 213 may be configured to create and store the campaignmetadata and expose an application programming interface (API) to thesubscriber mobile telephone devices 222 to request to download campaignsto the device. The NDR module 214 may be configured to store thetelephone numbers used to trigger the display of an advertisement in theNDR 219. NDR 219 may be used as a repository for any campaigns that usetelephone number triggers. NDR module 214 may expose an API to othercomponents to allow them add/edit/lookup/delete telephone numbers on theplatform. If a new campaign is created with a telephone number trigger,the engine module 213 may use the NDR API to store the phone number(s)associated with this campaign in the NDR 219.

Subscriber module 215 may provide a representational state transfer(REST) API for create, read, update and delete (CRUD) operations againstthe subscriber database 221. Identity module 216 may provide an API forauthentication and authorization functions. Identity module 216 may alsoprovide APIs to perform CRUD operations on subscribers. Notificationmodules 217, 245 may be configured to send notifications or messages tosubscriber mobile telephone devices 222.

FIG. 3 shows an exemplary embodiment of a system 300 for delivering atargeted advertisement to a mobile user at the end of a call. The system300 includes a campaign web 302 portal, an engine 304 service, a numberdomain registry (NDR) service 306, a subscriber service 308, a pushservice 310 and a push sender 312.

The campaign web 302 portal may be used by advertisers 350 to create thetelephone number campaigns via a web based user interface. The campaignweb 302 portal may call a REST API to create new campaigns. The campaignweb 302 portal may also create and store media sets 320 and media files322.

The engine 304 component may be the service that creates and stores thecampaign metadata and exposes an API to the clients to request todownload campaigns to a subscriber device 352. The ad metadata may bestored in several database tables 318. The ad media set 320 may bestored on a filesystem. The engine 304 component may be configured tonotify any registered devices (e.g., subscriber device 352) when a newtelephone number campaign is created on the campaign web 302 portal(e.g., via a cloud messaging (CM) notification, API request/responsemessages, etc.). The NDR service 306 may be the component used to storethe phone numbers used to trigger the display of an ad. It may be usedas a repository for any campaigns that use telephone number triggers. Itmay expose an API to other components to allow them toadd/edit/lookup/delete telephone numbers on the platform. If a newcampaign is created with a telephone number trigger, the engine 304service may use the NDR API to store the phone number(s) associated withthis campaign in the NDR 324 repository.

The push service 310 may be used to send platform-initiated messages toclients using the cloud messaging framework. It may send batchnotifications to a CM service 354 when other platform services need tosend notifications to the devices. The system may include an identityservice 314 that provides an API to request OAuth2 tokens for the adservice. Clients acquire a valid OAuth2 access_token from the tokenendpoint before making any calls to the private endpoints. The accesstoken may be sent to the server using a hypertext transfer protocol(HTTP) Authorization bearer token header. Every client may be registeredwith the identity service 314. It may also provide APIs to perform CRUDoperations on subscribers.

The subscriber service 308 may provide a REST API for CRUD operationsagainst the subscriber 326 database table. With this API the otherservices may lookup details about a subscriber who is provisioned on theplatform. A subscriber's CM push token may be retrieved from thesubscriber service 308 in order to send notifications via CM to theirmobile device (e.g., subscriber device 352). Subscriber service 308 mayuse an identity service client to call the identity service API torequest information on subscribers. The client in various embodimentscould be a mobile application that receives the CM notification message.The client may be configured in various embodiments to display an ad toa user based on one of various triggers configured on the campaign web302 portal when a campaign is configured. A subscriber may be a mobiledevice user who has the ad app or ad software development kit (SDK)installed on their device (e.g., subscriber device 352) and who hasregistered with the ad back end platform.

An embodiment for a method of creating an advertisement campaign isdisclosed in FIG. 4. In one embodiment the advertiser 402 logs into thead campaign portal 404 using login credentials provided to them. The adcampaign portal 404 may query an ad engine webservice 408 to retrieve auser object. The advertiser 402 may select to create a new ad campaign.The advertiser 402 may select the ad trigger type to be a dialed numbertrigger as part of the ad creation. They may enter the phone number(s)to be used to trigger the campaign at the end-of-call event. They mayselect the media to be displayed on the mobile device when the telephonenumber campaign is triggered. The advertiser 402 may save their newcampaign and the ad campaign engine 406 takes the form data and storesthis information in the database.

When the campaign is approved it will become active and is thenavailable for clients to download. The ad campaign engine 406 mayrequest the subscriber IDs (subscriber-id, push token) by calling thesubscriber service 412. The subscriber service 412 may call the identityservice 414 to get the IDs for each subscriber that is eligible toreceive this new campaign notification. The subscriber service 412 mayreturn the list of IDs to the ad campaign engine 406 service so it cancreate a batch push notification. The ad campaign engine 406 may callthe push service 416, such as by posting a batch request with thesubscriber IDs, campaign id, list of dialed numbers, and notificationtype. The push service 416 may create a batch notification request tosend to the CM 418 service. The push service 416 may send the batchnotifications to the CM 418 service. In an embodiment, the batch sizemay be approximately 1000. Multiple push notifications may need to besent to the CM 418 service to notify all active clients of the newtelephone number campaign. The CM 418 service may forward the pushnotification to each device that has a push token. The ad app 420 or adSDK on the device may receive the push notification, and using thecampaign id from the notification, call the ad campaign engine 406 torequest to download the campaign from the server. The campaign may bedownloaded while the call is on-going.

An embodiment for a method of retrieving a telephone number campaignfrom a server via a cloud messaging notification is illustrated in FIG.5. The ad push service 502 may send a batch notification message to theCM 504 service with the campaign-id, list numbers of the new telephonenumber triggered campaign and the subscriber push tokens. The CM 504service may send the notification to the ad app 506 and/or all clientsthat a push token provided by the ad push service 502. The ad app 506may receive the notification from the CM 504 service and parse thecampaign-id and list of numbers from the message. The ad app 506 maystore the list of numbers in the app number registry 508. The ad app 506may wait for an outgoing call to be made by the user and check whetherthe phone number matches any of the numbers stored in the app numberregistry 508. If it finds a match, the ad app 506 may call the ad server510 to download the ad campaign using the ad campaign-id from the pushnotification. The ad server 510 may query a database 512 to check thatthe device's advertiser-id hasn't changed from the last receivedgetAdverts( ) API call to the server from this device. An engine service(e.g., ad campaign engine 406 illustrated in FIG. 4) may look up theuser and check that it is eligible to receive the ad campaign. Theengine service may send the ad data back to the device (this may containa Uniform Resource Locator (URL) link to the campaign media). The appmay download the ad media file(s) using the returned URL from the admetadata and store the data into its local cache. In an embodiment, adsmay be displayed in real-time based on network conditions, for example,if the client is connected to a 4G/LTE cellular network.

An embodiment for a method to display an advertisement after anend-of-call event is illustrated in FIG. 6. In the example illustratedin FIG. 6, the system includes an ad app 602, user 604, TelephonyManager606, PhoneCallStatListener 608, EndOfCallService 610 component,CallInfoGatherService 612, EndofCallAdTrigger 614, EOCRulesDAO 616, appnumber registry 618, AdActivity 620, and a server 622. A subscriber(e.g., user 604 in FIG. 6) may dial a phone number on the mobile deviceusing the dialer application. The mobile device's TelephonyManager 606may connect the call to the carrier's mobile network. The ad app 602 orSDK may receive a notification from the operating system (OS) that acall has begun from the device. The ad app 602 may retrieve the outgoingphone number from the operating system API. The ad app 602 or SDK mayuse this retrieved phone number to check whether the number exists inthe applications ‘app number registry’ (ANR) 618. If the phone numberexists in the app number registry 618, the app may return an EocRuleobject to the EndOfCall Service class. The EndOfCallService class callsthe AdActivity class after detecting the call end event from the OS. TheAdActivity 620 component may select the correct Ad to display based onthe telephone number trigger and ad display rules algorithm. The Ad maybe displayed after the call terminates on the mobile device.

Any of the steps, operations, or processes described herein may beperformed or implemented with one or more hardware or software modules,alone or in combination with other devices. In one embodiment, asoftware module is implemented with a computer program product includinga computer-readable medium containing computer program code, which canbe executed by a computer processor for performing any or all of thesteps, operations, or processes described.

Embodiments of the invention may also relate to an apparatus or systemfor performing the operations herein. This apparatus or system may bespecially constructed for the required purposes, and/or it may include ageneral-purpose computing device selectively activated or reconfiguredby a computer program stored in a computer. Such a computer program maybe stored in a non-transitory, tangible computer readable storagemedium, or any type of media suitable for storing electronicinstructions, which may be coupled to a computer system bus.Furthermore, any computing systems referred to in the specification mayinclude a single processor or may be architectures employing multipleprocessor designs for increased computing capability.

The various components depicted in FIGS. 2 and 3 may include computingdevices or reside on computing devices such as servers, desktopcomputers, laptop computers, tablet computers, personal digitalassistants (PDA), smartphones, mobile phones, smart devices, appliances,sensors, or the like. Computing devices may include processors,memories, network interfaces, peripheral interfaces, and the like. Someor all of the components may include or reside on separate computingdevices. Some or all of the components depicted may include or reside onthe same computing device.

The various components in FIGS. 2 and 3 may be configured to communicatedirectly or indirectly with a wireless network such as through a basestation, a router, switch, or other computing devices. In an embodiment,the components may be configured to utilize various communicationprotocols such as Global System for Mobile Communications (GSM), GeneralPacket Radio Services (GPRS), Enhanced Data GSM Environment (EDGE), CodeDivision Multiple Access (CDMA), Wideband Code Division Multiple Access(WCDMA), Bluetooth, High Speed Packet Access (HSPA), Long Term Evolution(LTE), and Worldwide Interoperability for Microwave Access (WiMAX).

The components may be further configured to utilize user datagramprotocol transport control protocol (TCP), satellite links and variousother communication protocols, technologies, or methods. Additionally,the components may be configured to connect to an electronic networkwithout communicating through a wireless network. The components may beconfigured to utilize analog telephone lines (dial-up connection),digital lines (T1, T2, T3, T4, or the like), Digital Subscriber lines(DSL), Ethernet, or the like. It is further contemplated that thecomponents may be connected directly to a computing device through aUniversal Serial Bus (USB) port, Bluetooth, infrared (IR), Firewireport, thunderbolt port, ad-hoc wireless connection, or the like.Components may be configured to send, receive, and/or manage messagessuch as email, SMS, MMS, or the like.

As discussed above, the embodiments may include methods, and devicesconfigured to implement the methods, for displaying media on a mobiledevice (e.g., smartphone, etc.) that include determining (e.g., by themobile device, a processor of the mobile device, a server computingdevice, etc.) that a telephone call has been initiated between themobile device and a second telephone device, determining a telephonenumber of the second telephone device, determining that the telephonenumber of the second telephone device matches a campaign telephonenumber stored in memory, determining a media object to display based onthe telephone number, downloading the media object on the mobile device,determining that the telephone call has ended, and displaying the mediaobject on the mobile device after the telephone call has ended.

As also discussed above, some embodiments may include registering amobile device to an identity service associated with a server computingdevice implementing a media delivery platform, acquiring by the mobiledevice authentication tokens through the identity service (in which theidentity service provides an API to the mobile device for acquiring theauthentication tokens), sending by the mobile device the authenticationtokens to the server computing device for authenticating registrationwith the identity service, receiving at the registered mobile devicenotifications that include information related to new campaigns toautomatically update campaign telephone numbers stored in the mobiledevice (in which the information includes new campaign IDs and a list ofassociated campaign telephone numbers used to trigger display of mediaobjects), determining (e.g., by the mobile device, a processor of themobile device, a server computing device, etc.) that a telephone callhas been initiated between the mobile device and a second telephonedevice, determining a telephone number of the second telephone device,determining that the telephone number of the second telephone devicematches a campaign telephone number stored in memory, determining amedia object to display based on the telephone number, downloading themedia object, determining by the mobile device that the telephone callhas ended, and displaying the media object on the mobile device afterthe telephone call has ended.

Further embodiments may include methods of reducing calls to a customerservice center of an enterprise (e.g., the telecommunications serviceprovider, etc.). A mobile device may be configured to monitor theactivities of a mobile device user to determine whether the mobiledevice user has commenced calling the customer service center (e.g., orthat a telephone call has been initiated between the mobile device and asecond telephone device) and/or to determine whether there is a highprobability that the mobile device user will commence calling thecustomer service center in the near future. The mobile device mayanalyse the user's activities and/or use information received from aserver device to predict the reasons that the mobile device user hascommenced calling customer service center or will commence calling thecustomer service center in the near future. To accomplish this, themobile device may use any of a variety of prediction techniques known inthe computing arts, such as statistical modelling, case-based reasoning,lazy learners, Bayesian classifiers, distributed voting, reinforcementlearning, fuzzy rule-based learning, adaptive fuzzy inference, andmixture-model techniques. The mobile device may select one or more ofthe predicted reasons, select a media object/element based on theselected/predicted reason(s), and render the selected media elementfront and center on a screen of the mobile device, on top of any othercontent displayed on the screen, until the user interacts with themobile device or until the media object/element has been rendered for apredefined time period.

Telecommunication service providers now offer their customer access to awide variety of different services and subscription plans (e.g.,pre-paid subscription plans, post-paid subscription plans, multi-usersubscription plans, usage-limited subscription plans, etc.). Theproliferation of these new services and subscription plans has increasedthe complexity of using mobile devices and managing subscriber accounts.To help customers manage this complexity, telecommunications serviceproviders now also provide their customers access to apps and otherweb-based systems that allow mobile device users to look up informationand self-manage their accounts. For example, mobile device users maydownload and use an operator app (e.g., MyVerizion App, MyATT App, etc.)to check the health or functioning of the mobile device, monitor datausage, change subscription plans or service levels (e.g., Gold, Bronze,etc.), pay a monthly bill, purchase additional data, and accomplishother similar tasks via their mobile devices.

Despite the availability of operator apps and web-based systems thatprovide mobile device users with robust access and control over theiraccounts, customers continue to rely on human operators and/or customerservice centers of telecommunication service providers to accomplishmany tasks. For example, despite online payment systems that allowmobile device users to pay their bills faster and more efficiently thantraditional phone-based or voice-based systems, many subscribers stillchoose to call the customer service department each month to submittheir payment over a voice call. Due to such customer behaviours andhabits, many telecommunications service providers are forced to utilizeexpensive customer service vendors and/or maintain robust customerservice departments that use human or labour-intensive procedures tointeract with the customers (e.g., answer their questions, manage theiraccounts, etc). These customer service centers/venders could contributesignificantly to the overhead/operating expenses of an enterprise (e.g.,telecommunication service providers, etc.) and/or prevent them fromoffering their customers with additional or less expensive services orsubscription plans.

To improve the user experience and reduce overhead/operating costs, someenterprises (e.g., telecommunication service providers, etc.) have begunsending notification messages to their customers to inform them of theavailability and/or capabilities of web-based access or controlmechanisms (e.g., operator apps, self-care apps, etc.). However, theengagement rates associated with these conventional notificationmessages have been extremely low (˜1-2%). That is, most customers (e.g.,˜98-99%) do not read the notification messages, do not click on linksincluded in the messages, do not respond to the messages, or do nototherwise alter their behaviors or habits based on the content includedin the conventional notification messages sent by such enterprises. Dueto these low response/engagement rates, enterprises such astelecommunication service providers have not been successful inencouraging mobile device users to better utilize the capabilities oftheir apps and web-based tools. Because they are not fully utilized, thecreation/deployment of such tools has not significantly reduced thenumber of calls to the customer service centers or the average durationof such calls. Many such enterprises are still forced to utilizeexpensive customer service vendors and/or maintain robust customerservice departments that use human or labour-intensive procedures.

The low response/engagement rates associated with conventionalnotification messages could be due to any or all of a variety offactors, including the timing associated with when the notificationmessage is displayed to the mobile device user, the content included innotification message, the location/position on the mobile device screenin which the notification message is displayed, and the technology usedto communicate the notification messages. For example, usingconventional solutions, mobile device users could receive notificationmessages at random times or when they are focused on other tasks. As aresult, mobile device users may ignore or forget about the notificationmessages. In addition, notifications that are sent via short messageservice (SMS), email, or other similar technologies may require that themobile device user further engage with the device or perform otheractions (e.g., open a specific app, etc.), which when focused on othertasks, many mobile device users simply choose not to perform. As anotherexample, notification messages that are sent as push notifications couldbe added to a long list of push notifications from other apps, whichmany customers view as a nuisance or have developed a habit to ignore.For these and other reasons, conventional notification messages sent bycertain enterprises, such as telecommunication service providers, totheir customers have not be successful in altering userbehaviors/habits, have not adequately reduced customer calls to customerservice centers, have not reduced the average durations of customerservice calls, and thus have not allowed the enterprises to reduce theoverhead/operating expenses associated with managing or maintainingcustomer service centers.

The embodiments include components that overcome the above-describedlimitations of conventional solutions to allow such enterprises (e.g.,telecommunication service providers, etc.) to better engage and interactwith their customers, increase the response/engagement rates associatedwith the enterprise communications, alter existing userbehaviors/habits, redirect mobile device users from calling the customerservice center to using a web-based access or control mechanism (e.g.,operator apps, etc.) to trouble-shoot their own devices or self-managetheir own accounts, reduce customer calls to customer service centers,reduce the average durations of customer calls to customer servicecenters, and/or otherwise reduce the overhead/operating expensesassociated with managing or maintaining customer service centers so asto allow the enterprises to offer additional or more cost-effectiveservices (e.g., subscription plans, etc.) to their customers.

In some embodiments, one or more components (e.g., mobile device, serverdevice, etc.) may be configured to use the mobile device's usagehistory, subscriber account information, artificial intelligence,machine learning, heuristics and/or other similar information,techniques or technologies to intelligently determine the motives orreasons (and probabilities for the motives/reasons) that a mobile deviceuser would contact a customer service center of a telecommunicationservice provider. For example, if the mobile device's usage historyindicates that the mobile device user has contacted the customer servicecenter each month for the past three months shortly after receiving abill (e.g., 3-4 days after the bill is issued, etc.) to submit payment,a device processor (e.g., a processor in the mobile device or a serverprocessor) may determine that the there is a high probability that themobile device user will contact the customer service center immediatelyafter the next bill to submit payment.

The components may monitor the actions or behaviours of the mobiledevice user to determine whether the mobile device user is calling (oris about to call/contact) a customer service center. The components mayuse the determined motives/reasons and their associated probabilityvalues to select a media element (e.g., image, video, text, links, etc.)and cause the user mobile device to render the selected media element onthe mobile device screen in response to determining that the mobiledevice user is calling or is about to call the customer service center.The components may render the selected media element front and center onthe screen, on top of all other content displayed on that screen, untilthe user interacts with the mobile device or the rendered media element.

As a more detailed example, in some embodiments, a mobile deviceprocessor may be configured to redirect calls made to a customer servicecenter of an enterprise by monitoring the actions or behaviours of themobile device user to determine that mobile device user has opened avoice-based calling app on the mobile device or has begun dialling thephone number of a customer service center. The mobile device processormay also determine the motives or reasons (and probabilities for themotives/reasons) that the mobile device user would contact the customerservice center. The mobile device processor may determine, based on themobile device's usage history, determined motives/reasons, analysisresults, and/or information received from a server computing device,that there is a high probability that the mobile device user intends tocontact the customer service center to submit payment for a recent bill.In response, the mobile device processor may select a media element thatincludes hyperlinks or other interactive elements that allow the mobiledevice user to download and use an operator app to submit the paymentelectronically, and render the selected media element front and centeron the screen, on top of all other content, until the user closesrendered media element or clicks on one of its interactive elements todownload or use the operator app to submit payment.

By intelligently generating or selecting the media element to includecontent that is relevant to an action or task in which the mobile deviceuser is either currently performing or likely to perform in the nearfuture, and rendering the selected the media element front and center onthe screen, on top of all other content, until the user interacts withrendered media element, the embodiments may significantly increase theresponse/engagement rates associated with the telecommunication serviceprovider communications and/or significantly reduce the number and/oraverage duration of customer calls to customer service centers. Byreducing the number calls to customer service centers and/or reducingthe average durations of such calls, the various embodiments may reducethe overhead/operating expenses of enterprises and/or allow anenterprise to offer its customers with additional or less expensiveservices.

In some embodiments, the components may be configured to select andrender media elements proactively, reactively, and/or in real-time. Forexample, a mobile device processor may be configured to send locationinformation identifying the location of the mobile device to the servercomputing device. A processor in the server computing device maydetermine that the mobile device is currently located in an area that issubject to a severe weather warning (e.g., area expected to be hit by ahurricane, etc.) or potential network outage. In response, the servercomputing device may proactively determine that there is a highprobability that the mobile device user will contact the customerservice center to seek information regarding the device'sservice/coverage during a severe weather event (and/or in relation to anexisting or potential network outage), select a media element thatincludes hyperlinks or other interactive elements, and cause the mobiledevice to render the selected media element front and center on thescreen, on top of all other content. As examples, the server maygenerate and send a campaign to the mobile device that causes the mobiledevice to render media elements that identify the service/coveragepolicies relevant to that device during the severe weather event, thatidentify special polices put in place by the service provider during thesevere weather event (e.g., data relief and free voice calls for theperiod of emergency, network outage policies or warnings, etc.), includelinks to download and install an operator app on the device, or othersimilar information or interactive elements. Unlike conventional pushnotifications, the media element may be displayed front and center onthe mobile device's screen, on top of all other content, when the useris engaged with the mobile device and/or conducting an activity or taskthat is relevant to the content of the media element.

As another example, the device processor may proactively determine thatthere is a high probability that the mobile device user will contact thecustomer service center to seek information (e.g., regarding a bill,available packages, etc.) in response to the device processor (or aserver processor) determining that the mobile device is currentlylocated in an area that is outside the geographical range of its homenetwork (or is currently roaming), that the mobile device is notcurrently subscribed to a roaming package, and/or that mobile deviceuser has opened a voice-based calling app on the mobile device or hasbegun dialling the phone number of a customer service center. That is,embedded wireless modem cards often tie the mobile device a specifictelecommunication service provider (e.g., AT&T, Verizon, etc.) byrequiring that the mobile device connect to the globaltelecommunications network (and ultimately the Internet) through thatservice provider's cellular network (“home network”). When a connectionthrough the home network is not available, such as when the mobiledevice is outside the geographical range of its home network, the mobiledevice may be allowed to “roam” by connecting through a differentservice provider's cellular network (“visited network”). While suchroaming capability may provide a mobile device user with added mobilityand connectivity, it is often much more expensive than accessingwireless IP and data services over the mobile device's home network. Toavoid to receiving a flood of calls regarding the added expensesassociated with roaming, the device/server processor may proactivelyidentify the services or plans that are available to the mobile deviceuser and which could reduce roaming costs (e.g., in response todetermining that the device is currently roaming, that the mobile deviceis not currently subscribed to a roaming package, etc.). The processormay include information or links relevant to the identified services orplans in a campaign or media element (including links to download andinstall an operator app on the device if needed), and cause the mobiledevice to display the media element (e.g., when the user is engaged withthe mobile device, conducting an activity or task that is relevant tothe content of the media element, etc.). When the user interacts withthe media element, the mobile device may redirect the user from callingthe customer service center to reading the relevant information onlineor self-servicing his or her account.

As yet another example, a device processor may be configured to monitorprepaid data usage on the mobile device and determine the amount of dataremaining in the mobile device user's account. The device processor mayalso analyse the mobile device's usage history to determine whether themobile device user has a habit of contacting the customer service centerfor information or to top-up credit or prepaid data. The deviceprocessor may determine that the rate of data usage has increasedsignificantly in the past few days, that the user is likely to run outof credit or prepaid data soon, that the user has a habit of contactingthe customer service center for information or to top-up credit orprepaid data, and/or that mobile device user has opened a voice-basedcalling app on the mobile device or has begun dialling the phone numberof a customer service center. Based on these and/or other observationsand analysis, the device processor may determine that there is a highprobability that the mobile device user will contact the customerservice center to purchase additional data or request informationregarding the increased data usage on the mobile device. In response,the processor may select a media element that lists, categorizes oritemizes data usage on the device over the past few days and/or includesa link to top-up or purchase additional data via the operator app.

In some embodiments the device processor may be configured to redirectcalls made to a customer service center of an enterprise based on callvolume or characteristics of the customer service center. For example,the device processor may monitor the actions or behaviours of the mobiledevice user to determine that mobile device user has opened avoice-based calling app on the mobile device or has begun dialling thephone number of a customer service center. The device processor (orserver processor) may determine values representing call volume, theoperational capacity of the customer service center agent (or how busythe agents are, etc.), customer wait times (or the anticipated amount oftime before an agent will be available to accept the call, etc.), and/oror similar factors or conditions. The processor may compare thedetermined values to thresholds, and cause the mobile device to render aselected media element when one or more of the determined values exceedtheir respective thresholds.

In some embodiments the device processor may be configured to redirectcalls made to a customer service center of an enterprise by rendering amedia element that allows the user to chat with an agent or bot. Forexample, the device processor may monitor the actions or behaviours ofthe mobile device user to determine that mobile device user has opened avoice-based calling app on the mobile device or has begun dialling thephone number of a customer service center. The device processor may alsodetermine or predict the reason for the call (e.g., whether the user hasrecently received a bill, whether the bill is larger than usual, etc.).The device processor may select a media element based on thedetermined/predicted reason, and cause the mobile device to render theselected media element. For example, the mobile device may present userswith an option which asks them whether they are calling regarding arecent bill, and if they would like to divert to Online Chat (e.g., “ifyou are calling about your recent bill, click here to chat with anagent”).

In some embodiments the device processor may be configured to driveusage of operator apps and web-based systems. For example, the processormay be configured to use machine learning techniques to learn the habitsor behaviours of the mobile device user, determine whether the operatorapp or web-based system of telecommunications service provider includesfeatures that would engage the mobile device user based on the learnedhabits/behaviours, select a media element that identifies thosefeatures, and render the selected media element front and center on thescreen, on top of all other content, until the user closes renderedmedia element or clicks on one of its interactive elements to downloador use the operator app for the identified features. By using thelearned habits/behaviours to intelligently determine whether thefeatures that would engage the mobile device user, and intelligentlyselecting and displaying relevant content (e.g., media elements thatidentify features that would engage the mobile device user) when theuser is focused on a relevant task, the embodiments may significantlyincrease the usage of operator apps and web-based systems to reduce theoverhead/operating expenses of enterprises. This reduction inoverhead/operating expenses may allow the enterprises to offer theircustomers with additional or less expensive services or subscriptionplans.

In some embodiments, the device processor may be configured to selectand display the media elements, at least in part, based on a command,message, trigger or instruction message received from the customerservice center. In some embodiments the device processor may beconfigured to reduce the average durations of calls to the customerservice centers of an enterprise. For example, if customer servicecenter representative determines that the user has contacted thecustomer service center to submit payment for a recent bill, therepresentative may send a message to the device processor that causesthe device processor to select and display, during the call, a mediaelement that includes hyperlinks or other interactive elements thatallow the user to download and use an operator app to submit paymentelectronically. The device processor may display the media element induring the call.

FIG. 7 illustrates an example method 700 of building and maintaining auser profile that identifies user actions or behaviors on the mobiledevice that indicate that the user is likely to contact the customerservice center in the near future, or which identify the motives orreasons (and probabilities for the motives/reasons) that the mobiledevice user would contact the customer service center. All or portionsof method 700 may be performed by one or more processors in a server ormobile device.

In block 702, a processor (in a mobile device, in a server device, etc.)may monitor actions or behaviors of the mobile device user, and storeinformation identifying the monitored actions/behaviors in a datastoreor memory. For example, the processor may implement, install, monitorvarious application programming interfaces (APIs), registers, counters,log files or other device components at various levels of the device(e.g., at the hardware level, driver level, kernel level, nativedevelopment kit (NDK) level, SDK level, and/or Webkit level, etc.),collect behavior information from those components, and store thecollected behavior information in the datastore or memory of the mobiledevice. In addition, the processor may read, monitor, collect or storedevice identifiers (e.g., IMEI, IMSI, AD-ID), device model information(make, model, etc.), call logs, installed apps, demographic details(e.g., age, gender, location, etc.), geolocation information, and/or anyother information available about the subscriber or user device in block702.

In some embodiments, in block 702, the processor may generate a behaviorinformation structure that characterizes the subscriber, the mobiledevice user, mobile device, or the monitored actions/behaviors of themobile device user or mobile device. The behavior information structuremay be an array, a multidimensional array, a list, a table, a map, avector, or any other data structure known in the art. The behaviorinformation structure may characterize the monitored actions/behaviorsvia a series of fields (e.g., “Subscription Plan,” “User InteractionLevel” “International Calling,” “Short Message Service (SMS) messagessent today,” etc.) and corresponding values (e.g., Prepaid, 12, Yes, 10,etc.).

In some embodiments, processor may generate the behavior informationstructure to store the fields and associated values so that they couldbe applied to a machine learning classifier model. A machine learningclassifier model may be an information structure that includes aplurality of decision nodes (e.g., decision trees, boosted decisionstumps, etc.). Each decision node may ask a question or that eachevaluate a specific action or behavior of the mobile device user ormobile device, such as is the subscriber's age below forty, has the usersent more than 20 SMS messages today, what is the subscriber's currentsubscription plan, has subscriber changed subscription plans in the pastthree months, is subscriber's account current, does subscriber's creditscore exceed a threshold value, how many times has the user interactedwith the mobile device today, has user spent more than twenty minutesusing social media apps on the device today, etc. In some embodiments,each decision node may ask a question or evaluate a condition thatresults in a numeric value.

As an example, a behavior information structure may include a “UserInteraction” field that describes the frequency in which the userinteracts with the computing device via its corresponding value (e.g.,12, etc.). The value may be incremented every time an API or command(e.g., View.onTouchEventQ, View.onKeyDown, View.onKeyUp, etc.) isinvoked on the mobile device.

Applying the behavior information structure that includes a “UserInteraction” field with a value of “12” to a machine learning classifiermodel that includes a decision node that evaluates the condition “is thefrequency of user interaction over the past 5 minutes greater than 10per minute” may generate a result that indicates “yes” via a numericvalue (e.g., 1 for yes, 0 for no, etc.).

In some embodiments, each decision node may be associated with a weightvalue that identifies the importance of the answer relative to otheranswers to other decision nodes. In some embodiments, the processor maybe configured to compute a weighted average of the answers from alldecision nodes in classifier model, and classify the behaviorinformation structure based on whether the weighted average exceeds athreshold value.

That is, the machine learning classifier model may include multipledecision nodes and each the behavior information structure may includemultiple field/value pairs. As such, applying a behavior informationstructure to a machine learning classifier model may generate aplurality of answers to a plurality of different test conditions. Eachof these answers may be represented by a numerical value. The processormay multiply each of these numerical values with their respective weightvalue to generate a plurality of weighted answers. The processor maythen compute or determine a weighted average based on the weightedanswers, and compare the computed weighted average to threshold values,such as an upper threshold and a lower threshold.

The processor may use the result of these comparisons to determinewhether the activities characterized by the behavior informationstructure may be classified (e.g., as “is likely to call,” “is notlikely to call,” “is calling to pay a bill,”) with a high degree ofconfidence. For example, if the computed weighted average is “0.90” andan upper threshold value for “is likely to call” is “0.70,” thecomputing device may classify the behavior characterized by the behaviorinformation structure as indicating there is a high probability that themobile device user will commence calling the customer service center inthe near future. This is because the computed weighted average exceedsthe upper/high threshold value (i.e., “0.90”>“0.70”). Similarly, if thecomputed weighted average is “0.08” and the lower/low threshold value“is likely to call” is “0.10,” the computing device may classify thebehavior information structure (and thus the monitoredactivity/behavior) as indicating with a high degree of confidence thatthe mobile device user will not commence calling the customer servicecenter in the near future. This is because the computed weighted averageexceeds the lower or low threshold value (i.e., “0.08”<“0.10”).

The processor may be configured to determine that it cannot classify abehavior with a sufficiently high degree of confidence when the value ofthe computed weighted average is below the high threshold and above thelow threshold value. For example, the processor may determine that thesignificance of a behavior is indeterminate when the computed weightedaverage is 0.50, the upper threshold value is 0.90, lower thresholdvalue is 0.10. In response to determining that the significance ofbehavior is indeterminate, the processor may select a stronger or morerobust classifier model (e.g., that includes more decision nodes,decision nodes that ask more focused or detailed questions, etc.) andrepeat any or all of the above-described operations to generateadditional or different analysis results. The processor may use this newor additional analysis information to determine whether theindeterminate behavior may be classified one way or another with a highdegree of confidence. If not, the computing device may repeatedly orcontinuously perform the above-described operations until it determinesthat the behavior (or behavior vector) can be classified with a highdegree of confidence (e.g., until the weighted average is above the highthreshold or below the low threshold, etc.), until a processing orbattery consumption threshold is reached, or until the computing devicedetermines that the cause or source of the indeterminate behavior cannotbe identified from the use of stronger classifier models or largerbehavior information structures.

Returning to FIG. 7, in determination block 704, the processor maydetermine whether the user recently contacted the customer servicecenter (e.g., in the past hour, day, week, month, six months, etc.). Inresponse to determining that the user has not recently contacted thecustomer service center (i.e., determination block 704=“No”), theprocessor may discard the previously monitored activities/behaviors, andcontinue monitoring/storing the actions or behaviors of the mobiledevice user in block 702.

In response to determining that the user recently contacted the customerservice center (i.e., determination block 704=“Yes”), the processor mayassociate the monitored/stored actions or behaviors of the mobile devicewith the user with contacting the customer service center with in block706. For example, if mobile device user recently contacted the customerservice center after the frequency of user interaction increased to morethan 10 per minute, the processor may determine that increased userinteraction could be one factor associated with the user contacting thecustomer service center. In response, the processor may select a newmachine learning classifier model or increase a weight value associatedwith decision nodes that evaluate the frequency of user interaction.

In block 708, the processor may determine the motives or reasons (andprobabilities for the motives/reasons) that the mobile device user wouldcontact the customer service center based on the monitored/storedactions or behaviors of the mobile device, the mobile device's usagehistory, subscriber account information, artificial intelligence,machine learning (e.g., applying behaviour information structures tomachine learning classifier models, etc.), heuristics and/or othersimilar information. For example, the processor may determine that thethere is a high probability that the mobile device user will contact thecustomer service center to pay the next bill if the usage historyindicates that the subscriber contacted the customer service center eachof the past 3 months shortly after receiving a bill (e.g., 3-4 daysafter the bill is issued, etc.).

In block 710, the processor may build or update a user profile. The userprofile may include information that identifies user actions orbehaviours that indicate that the user is about to call the customerservice center, the times/dates that user is most likely to contact thecustomer service center, the actions or task that the user most likelyintends to accomplish by contacting the customer service center, thetypes of interactive media elements with which the user engages, thetypes of media elements that the user is most likely to engage with, andother similar information. In some embodiments, the processor may buildor update the user profile based on information collected on the mobiledevice, based on the answers generated when applying the behaviorinformation structure to the machine learning classifier model, based oninformation received from a server computing device, and/or any othertechnique discussed in this application or known in the art.

FIG. 8 illustrates a method 800 of redirecting mobile device users fromcalling the customer service center to using a web-based access andcontrol mechanism (e.g., operator apps, etc.) to trouble-shoot their owndevices or self-manage their own accounts in accordance with anembodiment. All or portions of method 800 may be performed by one ormore processors in a server or mobile device.

In block 802, a processor may monitor actions or behaviors of the mobiledevice user, store information identifying the monitoredactions/behaviors in a datastore or memory, and/or generate a behaviorinformation structure. In block 804, the processor may determine theprobability that user intends to contact the customer service center inthe near future (e.g., next 2 minutes, etc.) based on the user profileand/or the monitored actions or behaviors. In some embodiments, theprocessor may determine the probability that user intends to contact thecustomer service center based on the results generated by applying thegenerated behavior information structure to a machine learningclassifier model.

In determination block 806, the processor may determine whether thedetermined probability (i.e., that user intends to contact the customerservice center in the near future) exceeds a threshold value. Inresponse to determining that determined probability does not exceed thethreshold value (i.e., determination block 806=“No”), the processor mayselect a media element (e.g., image, video, text, links, etc.) based onthe user profile built or updated in block 710.

In block 810, the processor may cause the user mobile device to renderthe selected media element. In some embodiments, the processor may causethe user mobile device to render the selected media element in a mannerthat captures, focuses or commands the attention of the user. Forexample, the processor may cause the user mobile device to render theselected media element front and center on the mobile device screen, ontop of all other content displayed on that screen, until the userinteracts with the mobile device or the rendered media element. Asanother example, the processor may cause the user mobile device torender the selected media element over user interface elements (e.g.,soft keys displayed on the device, etc.) or otherwise in a manner thatdisables all or a portion of the functions of the device until the userinteracts with the displayed media element, etc. It should be understoodthat in addition to the examples above, the processor may cause the usermobile device to render the selected media element in any way thatforces or is likely to cause the mobile device user to read the mediaelement, click on media element, respond to the enterprises, or altertheir behavior or habits.

FIGS. 9 through 15 illustrate example user interfaces and userinteractions in a mobile device configured to reduce call volume (e.g.,the number and/or duration of calls) to customer service center inaccordance with some embodiments. In particular, FIGS. 9-13 illustrateexample user interfaces and user interactions in a mobile deviceconfigured to redirect mobile device users from calling the customerservice center to using a web-based access and control mechanism (e.g.,operator apps, etc.) to self-manage their own accounts. FIGS. 14 and 15illustrate example user interfaces and user interactions in a mobiledevice configured to reduce the duration of calls to the customerservice center by redirecting customers that have called the customerservice center to using the web-based access and control mechanism(e.g., operator apps, etc.) to self-manage their own accounts.

With reference to FIG. 9, the first user interface 902 illustrates thatthe user has commenced calling a customer service center associated withthe telecommunications service provider. The second user interface 904illustrates that the mobile device has determined that the user hascommenced calling a customer service center associated with thetelecommunications service provider, predicted that the mobile deviceuser has commenced calling the customer service center to pay a bill,selected a media element 906 based on the predicted reason, and hasrendered the selected media element 906 front and center on a screen 908of the mobile device, on top of any other content displayed on thescreen 908, until the user interacts with the mobile device or therendered media element 906, such as by clicking on the “pay bill now”button 910. The third user interface 912 illustrates that the mobiledevice has downloaded and/or launched operator app (e.g., MyVerizionApp, MyATT App, etc.), and directed the user to that section of the appthat allows the user to pay the bill, in response to determining thatthe user interacted with the rendered media element 906 (e.g., that theused clicked on the “pay bill now” button 910). That is, the third userinterface 912 illustrates that the user has been redirected from callingthe customer service center to using a web-based access and controlmechanism (e.g., operator apps, etc.) to self-manage the relevantaccount.

With reference to FIG. 10, the first user interface 1002 illustratesthat the mobile device has determined that the user has commencedcalling a customer service center associated with the telecommunicationsservice provider, predicted that the mobile device user has commencedcalling the customer service center to add or remove an addon (orperform another similar activity that could be address via chat),selected a media element 1006 based on the predicted reason, and hasrendered the selected media element 1006 front and center on a screen1004 of the mobile device, on top of any other content displayed on thescreen 1004, until the user interacts with the mobile device or therendered media element 1006, such as by clicking on the illustrated“chat now” button 1008. The second user interface 1010 illustrates thatthe mobile device has downloaded and/or launched operator app, anddirected the user to use a specific feature of that app (i.e., chat), inresponse to determining that the user interacted with the rendered mediaelement 1006 (e.g., that the used clicked on the “chat now” button1008). As such, the second user interface 1010 illustrates that the userhas been redirected from calling the customer service center to using achat service to add or remove an addon (or perform another similaractivity that could be address via chat).

With reference to FIG. 11, the first user interface 1102 illustratesthat the mobile device has determined that the user has commencedcalling a customer service center associated with the telecommunicationsservice provider, predicted that the mobile device user has commencedcalling the customer service center for one of four broad reasons,selected a media element 1106 based on the predicted reasons, and hasrendered the selected media element 1106 front and center on a screen1104 of the mobile device, on top of any other content displayed on thescreen 1104, until the user interacts with the mobile device or therendered media element 1106, such as by clicking on the illustrated“mobile device” button 1108. The second user interface 1110 illustratesthat the mobile device has downloaded and/or launched operator app, anddirected the user to use a specific submenu of that app (i.e., wirelesssupport categories), in response to determining that the user interactedwith the rendered media element 1106 by clicking on the “mobile device”button 1108. As such, the second user interface 1110 illustrates thatthe user has been redirected from calling the customer service center toa specific submenu that includes options that allow the user toself-manage his or her account.

With reference to FIG. 12, the first user interface 1202 illustratesthat the mobile device has determined that the user has commencedcalling an international number, determined that the subscriber is notcurrently subscribed to an international calling plan, predicted thatthe mobile device user is likely to call the customer service center inthe near future to ask about excessive charges or why the call failed,selected a media element 1206 based on the predicted reasons, and hasrendered the selected media element 1206 front and center on a screen1204 of the mobile device, on top of any other content displayed on thescreen 1204, until the user interacts with the mobile device or therendered media element 1206, such as by clicking on the illustrated“Yes” button 1208. The second user interface 1210 illustrates that themobile device has downloaded and/or launched operator app, and directedthe user to use a specific portion of the app that allows the user topurchase an international plan online, in response to determining thatthe user interacted with the rendered media element 1206 by clicking onthe “Yes” button 1208. That is, the second user interface 1210illustrates that the user has been redirected from calling the customerservice center to using a specific portion of an app that allows theuser to self-manage his or her account (e.g., by purchasing aninternational plan online, etc.).

With reference to FIG. 13, the first user interface 1302 illustratesthat the mobile device has determined that the user is currently withina geographic area for which the telecommunications service providerprovides disaster relief, and predicted that the user is likely to callthe customer service center in the near future to ask about servicedisruption or the options available to the user, selected a mediaelement 1306 based on the predicted reasons, and has rendered theselected media element 1306 front and center on a screen 1304 until theuser interacts with the mobile device or the rendered media element1306, such as by clicking on the illustrated “Yes” button 1308. Thesecond user interface 1310 illustrates that the mobile device hasdownloaded and/or launched operator app, and directed the user to aspecific portion of the app that provides the information and optionsrelevant to the user. For example, second user interface 1310 indicatesthat the service provider provides disaster relief in the form of datarelief for customers in hurricane impacted areas, and allows the user tosign up to receive special notifications.

With reference to FIGS. 14 and 15, first user interfaces 1402 and 1502illustrate that the mobile device has selected a media element 1406,1506 based on a message, trigger or instruction received from thecustomer service center with which the user is currently engaged (e.g.,via an established voice call, text messages, etc.), and has renderedthe selected media element 1406, 1506, front and center on a screen 1404of the mobile device, on top of any other content displayed on thescreen 1404, until the user interacts with the mobile device or therendered media element 1406, 1506, such as by clicking on theillustrated “Yes” button 1408. The second user interfaces 1410 and 1510illustrate that the mobile device has downloaded and/or launchedoperator app, and directed the user to specific portions of the app. Inthe example illustrated in FIG. 14, the user has been directed to aspecific portion of the app that displays account information (e.g.,amount of data remaining, next billing cycle, etc.). In the exampleillustrated in FIG. 15, the user has been directed to a specific portionof the app that allows eligible users to upgrade their devices.

FIG. 16 illustrates a method 1600 of driving usage of operator apps andweb-based systems in accordance with an embodiment. All or portions ofmethod 1600 may be performed by one or more processors in a server ormobile device. In block 1602, a processor may monitor actions orbehaviors of the mobile device user, and store information identifyingthe monitored actions/behaviors in a datastore or memory. In block 1604,the processor may use machine learning techniques to learn the habits orbehaviours of the mobile device user. For example, the processor maygenerate behavior information structures, apply the generated behaviorinformation structures to machine learning classifier models to generatea result, compute a weighted average of the result, compare the weightedaverage to one or more threshold values (e.g., a upper threshold, lowerthreshold, etc.), and classify the user as having a specific habit (ornot having a specific habit) in response to determining that theweighted average exceeds a threshold.

In determination block 1606, the processor may determine whether theoperator app or web-based system of telecommunications service providerincludes features that would engage the mobile device user based on thelearned habits/behaviours. In response to determining, based on thelearned habits or behaviours of the mobile device user, that operatorapp or web-based system does not include any features that have a highprobability of engaging the mobile device user (i.e., determinationblock 1606=“No”), the processor may continue monitoring/store actions orbehaviors of the mobile device user and learning the habits orbehaviours of the mobile device user in blocks 1602 and 1604.

In response to determining, based on the learned habits or behaviours ofthe mobile device user, that operator app or web-based system includesfeatures that have a high probability of engaging the mobile device user(i.e., determination block 1606=“Yes”), the processor may select a mediaelement that identifies those features in block 1608. In block 1610, theprocessor may render the selected media element front and center on thescreen, on top of all other content, until the user closes renderedmedia element or clicks on one of its interactive elements to downloador use the operator app for the identified features.

FIG. 17 illustrates a method 1700 of proactively selecting and renderingmedia elements in accordance with an embodiment. All or portions ofmethod 1700 may be performed by one or more processors in a server ormobile device. In block 1702, a processor in the mobile device maydetermine the location of the mobile device, such as by receivinglocation information from a network server, activating a globalpositioning system (GPS) receiver, or using other location determinationtechnologies known in the art. In block 1704, the mobile deviceprocessor may send the location information to a server device.

In block 1706, a processor in a server computing device may activatecircuitry or monitor ports to receive information identifying thecurrent location of the mobile device and service/coverage policyinformation, either from the mobile device itself or from anothernetwork component (e.g., base station, core network component, serviceprovider network component, etc.).

In determination block 1708, the server processor may determine whethermobile device is currently located in an area that is subject to specialconsiderations. For example, the server processor may determine whetherthe mobile device is currently located in an area that is subject to asevere weather warning (e.g., area expected to be hit by a hurricane,etc.), and whether the telecommunication service provider has institutedservice/coverage policies that are relevant to the mobile device duringsuch severe weather events. In response to determining that the mobiledevice is not currently located in an area that is subject to specialconsiderations (i.e., determination block 1708=“No”), the serverprocessor may reactivate circuitry or continue to monitor ports toreceive information identifying the current location of the mobiledevice or updated service/coverage policies in block 1706.

In response to determining that the mobile device is currently locatedin an area that is subject to special considerations (i.e.,determination block 1708=“Yes”), the server processor may determineinformation and service/coverage policies that are available to themobile device based on the location of the mobile device in block 1710.In block 1712, the server processor may select a media element based onthe information and/or services available. Alternatively or in addition,the server processor may proactively determine that there is a highprobability that the mobile device user will contact the customerservice center to seek information regarding the device'sservice/coverage during a severe weather event in block 1710.

In block 1712, the server processor may select a media element thatincludes hyperlinks or other interactive elements based on theinformation and/or service/coverage policies available for/to thatmobile device. For example, the server processor may that select a mediaelement identifies the service/coverage policies relevant to that deviceduring the severe weather event, that identifies special polices put inplace by the service provider during the severe weather event (e.g.,data relief and free voice calls for the period of emergency, etc.),includes links to download and install an operator app on the device, orother similar information or interactive elements.

In block 1714, the server processor may generate a communication messageor a campaign that includes information suitable for causing the mobiledevice to render the selected media elements front and canter on thescreen, on top of all other content. In block 1716, the server processormay send the generated message or campaign to the mobile device.

In block 1718, the mobile device processor may receive the communicationmessage or campaign from the server device. In block 1718, the mobiledevice processor may render the selected media element in response toreceiving the message or campaign. In some embodiments, in block 1718,the mobile device processor may render the selected media element frontand center on the mobile device's screen, on top of all other content,when the user is engaged with the mobile device and/or conducting anactivity or task that is relevant to the content of the media element.

FIG. 18 illustrates a method 1800 of proactively selecting and renderingmedia elements in accordance with another embodiment. All or portions ofmethod 1800 may be performed by one or more processors in a server ormobile device.

In block 1802, the mobile device may receive subscription plan and usageinformation from a server computing device. In block 1804, the mobiledevice (or a server computing device, etc.) may monitor prepaid datausage on the mobile device. In block 1806, the mobile device may comparecurrent prepaid data usage with historical prepaid data usageinformation stored in memory (e.g., a memory of the mobile device, adatastore associated with a server in the service provider network,etc.).

In determination block 1808, the mobile device may determine whethercurrent rate of prepaid data usage significantly exceeds historicalaverages. For example, if the user's historical prepaid data usageaverages indicate that the user uses approximately 5 Gigabits of dataper month, and has used 1.8 Gigabits of data in the first two days ofthe month, the mobile device may determine that current rate of prepaiddata usage significantly exceeds historical averages.

In response to determining that current rate of prepaid data usage doesnot significantly exceed historical averages (i.e., determination block1808=“No”), the mobile device may continue monitoring prepaid data usageon the mobile device in block 1804. In response to determining thatcurrent rate of prepaid data usage significantly exceeds historicalaverages (i.e., determination block 1808=“Yes”), the mobile device maymonitor/determine amount of prepaid data remaining in the user's accountin block 1810.

In determination block 1812, the mobile device may determine whether theuser is likely to run out of prepaid data in the near future (e.g., next5 minutes, next hour, next day, etc.). In response to determining thatthe user is not likely to run out of prepaid data in the immediatefuture (i.e., determination block 1812=“No”), the mobile device maycontinue monitoring the amount of prepaid data remaining in the user'saccount in block 1810. In response to determining that the user islikely to run out of prepaid data in the immediate future (i.e.,determination block 1812=“Yes”), the mobile device may determine thatthere is a high probability that the mobile device user will contact thecustomer service center to purchase additional data or requestinformation regarding the increased data usage on the mobile device inblock 1814.

In block 1816, the mobile device may select a media element that lists,categorizes or itemizes data usage on the device over the past few daysand/or includes a link to purchase additional data via the operator app.In block 1816, the mobile device may proactively render the selectedmedia element front and center on the screen, on top of all othercontent. By rendering the media elements when the user is likely to runout of prepaid data, the embodiments render the elements when the useris engaged with the mobile device and/or conducting an activity or taskthat is relevant to the content of the media element.

FIG. 19 illustrates a method 1900 of redirecting calls to a customerservice center of an enterprise in accordance with some embodiments. Allor portions of method 1900 may be performed by one or more processors ina server or mobile device. In block 1902, the mobile device or theserver device may monitor activities of a mobile device user, such as byperforming any or all of the operations discussed above with referenceto blocks 702-710, 802, 1602, 1604, 1706-1710, 1802-1812, etc. Forexample, as discussed above with reference to block 702, the mobiledevice or the server device may generate a behavior informationstructure that characterizes the subscriber, the mobile device user,mobile device, or the monitored actions/behaviors of the mobile deviceuser or mobile device in block 1902.

In block 1904, the mobile device or the server device may determine,based on the monitored activities, whether the mobile device user hascommenced calling a customer service center associated with theenterprise (or whether a telephone call has been initiated between themobile device and a second telephone device). For example, in block1904, a processor in the mobile device or the server device may comparenumbers entered by the mobile device user to numbers included intelephone number campaign received from the server device, and determinethat the mobile device user has commenced calling the customer servicecenter associated with the enterprise in response to determining that asequence the numbers entered by the mobile device user match acorresponding sequence numbers included in telephone number campaignreceived from the server device.

Alternatively or in addition to the operations in block 1904, theprocessor may determine, based on the monitored activities, whetherthere is a high probability that the mobile device user will commencecalling the customer service center in the near future in block 1906,which may be accomplished performing any or all of the operationsdiscussed above with reference to block 804. As a further example, inblock 1906, the processor may determine an amount of time that haspassed since a bill was sent to the mobile device user, determine afrequency in which the mobile device user has contacted the customerservice center within the amount of time that has passed since the billwas sent to the mobile device user, determine a frequency of userinteraction with the mobile device over an immediately preceding timeperiod, and determine whether there is the high probability that themobile device user will commence calling the customer service center inthe near future based on the frequency in which the mobile device userhas contacted the customer service center within the amount of time thathas passed since the bill was sent to the mobile device user and thefrequency of user interaction with the mobile device over theimmediately preceding time period.

It should be understood that, in various embodiments, the processor maybe configured to perform the operations in block 1904, the operations inblock 1906, or both. It should be also understood that the operations inblocks 1904 and 1906 may be performed in any order and/or in response toone another. For example, in some embodiments, the processor may beconfigured to perform the operations in block 1906 in response todetermining in block 1904 that the mobile device user has not yetcommenced calling the customer service center associated with theenterprise.

In block 1908, a processor in the mobile device or in the server devicemay predict, based on the monitored activities and/or informationreceived from a server device, a reason that the mobile device user hascommenced calling the customer service center or will commence callingthe customer service center in the near future. The processor maypredict the reason using any or all of information, technologies and/ortechniques discussed in this application, including any or all of theusage history of the mobile device, subscriber account information,artificial intelligence, machine learning, heuristics, statisticalmodelling, case-based reasoning, lazy learners, Bayesian classifiers,distributed voting, reinforcement learning, fuzzy rule-based learning,adaptive fuzzy inference, mixture-model techniques, etc. As an example,in block 1908, the processor may determine, based on the usage historyof the mobile device, the number of times that the mobile device userhas contacted the customer service center within a time periodsubsequent to receiving a bill to submit payment, and predict based onthis usage history (or based on the number of times that the mobiledevice user has contacted the customer service center within the timeperiod subsequent to receiving the bill to submit payment, etc.) thatthe reason that the mobile device user has commenced calling thecustomer service center or will commence calling the customer servicecenter in the near future is to submit payment.

In block 1910, the processor may select a media element (e.g., image,video, text, links, etc.) based on the predicted reason that the mobiledevice user has commenced calling the customer service center or willcommence calling the customer service center in the near future. Forexample, the mobile device processor may select a media element thatincludes hyperlinks or other interactive elements that allow the mobiledevice user to download and use an operator app, submit paymentelectronically, identify the service/coverage policies relevant to thatdevice during a severe weather event, identify special polices put inplace by the service provider during a severe weather event (e.g., datarelief and free voice calls for the period of emergency, etc.), thatlists, categorizes or itemizes data usage on the device over the pastfew days, that includes a link to purchase additional data via theoperator app, that includes features that would engage the mobile deviceuser based on learned habits/behaviors of the user, or which includeother similar information or interactive elements.

In block 1912, the mobile device may render the selected media elementon a screen of a mobile device of the mobile device user prior tocompleting a call to the customer service center associated with theenterprise and until the mobile device user interacts with the mobiledevice or the rendered media element. For example, in block 1912 themobile device may render the selected media element front and center onthe screen of the mobile device, on top of all other content displayedon the screen of the mobile device, prior to completing a call to thecustomer service center associated with the enterprise and until themobile device user interacts with the mobile device or the renderedmedia element. As a further example, the in block 1912 the mobile devicemay render the selected media element front and center on the screen, ontop of all other content, until the user closes rendered media elementor clicks on one of its interactive elements to download or use theoperator app (e.g., to submit payment, upgrade a device, etc.).

FIG. 20 illustrates a method 2000 of reducing the durations of clientengagements with a customer service center of an enterprise inaccordance with some embodiments. All or portions of method 2000 may beperformed by one or more processors in a server or mobile device. Inblock 2002, a processor in a mobile device or in a server device maymonitor activities of a mobile device user, such as by performing any orall of the operations discussed above with reference to blocks 702-710,802, 1602, 1604, 1706-1710, 1802-1812, 1902, etc.

In block 2004, the processor may predict, based on the monitoredactivities and/or information received from a server device, a reasonthat the mobile device user has commenced engaging the customer servicecenter or will commence engaging the customer service center in the nearfuture. The processor may predict the reason using any or all of theprediction techniques discussed in this application (e.g., thetechniques discussed above with reference to block 1908, etc.). In block2006, the processor may determine a confidence value for the predictedreason, which may be accomplished using any technique discussed in thisapplication or known in the art. In determination block 2008, theprocessor may determine whether the confidence value associated with thepredicted reason exceeds a confidence threshold.

In response to determining that the confidence value associated with thepredicted reason does not exceed the confidence threshold (i.e.,determination block 2008=“No”), the processor may engage the customerservice center associated with the enterprise, or allow the mobiledevice or mobile device user to engage the customer service center, inblock 2010. For example, the mobile device may send a communicationmessage (e.g., text message, etc.) to or establish a voice call with thecustomer service center associated with the enterprise in block 2002.

In block 2012, the mobile device may receive a command to trigger acampaign on the mobile device. In some embodiments, the mobile devicemay receive the command in block 2012 in response to engaging thecustomer service center associated with the enterprise in block 2010. Inblock 2014, the processor may select a media element (e.g., image,video, text, links, etc.) based on the received command and/or based onany of the information, techniques or technologies discussed in thisapplication (e.g., with reference to block 1910, etc.). In block 2016,the processor may render the selected media element on a screen of themobile device until a mobile device user of the mobile device interactswith the mobile device or the rendered media element. The processor mayalso render the selected media element in block 2016 by performing anyor all of the operations discussed in the application (e.g., withreference to block 1912, etc.).

In response to determining that the confidence value associated with thepredicted reason exceeds the confidence threshold (i.e., determinationblock 2008=“Yes”), the processor may redirect the mobile device userfrom engaging the customer service center in block 2018. In someembodiments, the processor may redirect the mobile device user fromengaging the customer service center (e.g., by performing the operationsof method 1900, etc.).

FIG. 21A illustrates a method 2100 of reducing the durations of sessionsor client engagements with a customer service center of an enterprise inaccordance with another embodiment. All or portions of method 2100 maybe performed by one or more processors in a server or mobile device. Inblock 2102, a processor in a mobile device or in a server device mayengage a customer service center associated with an enterprise and/orperform any or all of the operations discussed above with reference toblock 2010. In block 2104, the processor may receive command orinstruction message (from a server, the customer service center, etc.)in response to engaging the customer service center. In block 2106, theprocessor may select a media element (e.g., image, video, text, links,etc.) based on the received command and/or based on any of theinformation, techniques or technologies discussed in this application(e.g., with reference to blocks 1910, 2014, etc.). In block 2108, theprocessor may render the selected media element on a screen of themobile device by performing any or all of the operations discussed inthe application (e.g., with reference to blocks 1912, 2016, etc.).

FIG. 21B illustrates a method 2150 of reducing the durations of sessionsor client engagements with a customer service center of an enterprise inaccordance with the embodiments. All or portions of method 2150 may beperformed by one or more processors in a server or mobile device. Insome embodiments, method 2150 may be performed after a processor in amobile device or in a server device monitors the activities of a mobiledevice user, and predicts a reason (e.g., based on the monitoredactivities, information received from a server device, etc.) that themobile device user has engaged the customer service center. In someembodiments, method 2150 may be performed after a processor sends orreceives a predicted reason for the mobile device user engaging thecustomer service center (e.g., to pay a bill, inquire about serviceplans, etc.).

In block 2152, a processor in a mobile device or in a server device mayreceive an instruction message from a customer service center associatedwith an enterprise. For example, in block 2152, the processor mayreceive a command to trigger a campaign on the mobile device. Thecommand/campaign may be selected by a server or a customer servicerepresentative based on a question asked by the mobile device user via atext message sent from the mobile device to customer service center,based on a question asked by the mobile device user during a voice callbetween the mobile device and the customer service center, based on apredicted reason that the mobile device user has engaged the customerservice center, etc.

In block 2154, the processor may determine whether a mobile device userhas engaged the customer service center associated with the enterprisewithin a proceeding duration. For example, in block 2154, the processormay determine whether a text message (e.g., SMS, MMS, RTT, instantmessage, or other forms of electronic messages) has been sent from themobile device to customer service center associated with the enterprisewithin the proceeding duration. As another example, in block 2154, theprocessor may determine whether a data session or a voice call has beenestablished between the mobile device and the customer service center.

In block 2156, the processor may select a media element based on thereceived instruction message in response to determining that the mobiledevice user has engaged the customer service center (e.g., established avoice call, sent a text, etc.).

In block 2158, the processor may render the selected media element on ascreen of a mobile device of the mobile device user until the mobiledevice user interacts with the mobile device or the rendered mediaelement. In some embodiments, the mobile device may render the selectedmedia element prior to terminating a voice call (or chat session, datasession, voice session, etc.) between the mobile device and he customerservice center. That is, the mobile device may render the media elementwhile the user remains on the call with the customer service center.

FIG. 22 illustrates a method 2200 of reducing the durations of clientengagements with a customer service center of an enterprise inaccordance with another embodiment. All or portions of method 2200 maybe performed by one or more processors in a server or mobile device. Inblock 2202, a processor in a mobile device or in a server device mayreceive command or instruction message. In determination block 2204, theprocessor may determine whether the user is currently engaged with acustomer service center (e.g., is currently participating in a voicecall with the customer service center, recently texted the customerservice center, etc.).

In response to determining that the user is currently engaged with thecustomer service center (i.e., determination block 2204=“Yes”), theprocessor may select a media element based on the received commandand/or based on any of the information, techniques or technologiesdiscussed in this application (e.g., with reference to blocks 1910,2014, 2106, etc.) in block 2206. In block 2208, the processor may renderthe selected media element on a screen of the mobile device byperforming any or all of the operations discussed in the application(e.g., with reference to blocks 1912, 2016, 2108, etc.).

In response to determining that the user is not currently engaged withthe customer service center (i.e., determination block 2204=“No”), theprocessor may store, discard, or disregard the received command orinstruction message. For example, the processor may store the message sothat the corresponding media element may be displayed to the user at alater time when the user is engaged in a activity that is more relevantto the content of the media elements. This may increase theresponse/engagement rates associated with the enterprise communications,alter existing user behaviors/habits, reduce the average durations ofcustomer calls to customer service centers, and thus reduce theoverhead/operating expenses associated with managing or maintainingcustomer service centers.

Some embodiments may include components (e.g., mobile device, serverdevice, etc.) configured to use expectation-maximization (EM) or othermachine learning techniques known in the art to continuously,repeatedly, iteratively, or recursively generate, train, improve, focus,or refine the machine learning classifier models used to generate userprofiles, determine whether there is a high probability that the mobiledevice user will commence calling the customer service center in thenear future, determine the motives or reasons (and probabilities for themotives/reasons) that a mobile device user would contact a customerservice center of a telecommunication service provider, and/or any ofthe other determinations disclosed in this application. By using suchtechniques, the components may repeatedly or continuously refine andotherwise improve the machine learning classifier models until they arecapable of classifying a behavior or until the models reach a desiredlevel of accuracy.

In addition to the machine learning techniques discussed in thisapplication, the various embodiments may use any of a variety of othermachine learning, behavior-based, pattern recognition or predicationtechniques known in the art.

FIG. 19 illustrates an example computing system 1900 architecture thatmay be used in mobile devices implementing the various embodiments. Withreference to FIGS. 1-19, the illustrated example computing system 1900includes a system on chip (SOC) 1902, a clock 1906, and a voltageregulator 1908. In some embodiments, the SOC 1902 may operate as centralprocessing unit (CPU) of the wireless device that carries out theinstructions of software application programs by performing thearithmetic, logical, control and input/output (I/O) operations specifiedby the instructions.

The SOC 1902 may include a digital signal processor (DSP) 1910, a modemprocessor 1912, a graphics processor 1914, an application processor1916, one or more coprocessors 1918 (such as vector co-processor)connected to one or more of the processors, memory 1920, customcircuitry 1922, system components and resources 1924, aninterconnection/bus module 1926.

Each processor 1910, 1912, 1914, 1916, 1918 may include one or morecores, and each processor/core may perform operations independent of theother processors/cores. For example, the SOC 1902 may include aprocessor that executes a first type of operating system (such asFreeBSD, LINUX, OS X, etc.) and a processor that executes a second typeof operating system (such as MICROSOFT WINDOWS). In addition, any or allof the processors 1910, 1912, 1914, 1916, 1918 may be included as partof a processor cluster architecture (such as a synchronous processorcluster architecture, an asynchronous or heterogeneous processor clusterarchitecture, etc.).

The SOC 1902 may include various system components, resources and customcircuitry for managing sensor data, analog-to-digital conversions,wireless data transmissions, and for performing other specializedoperations, such as decoding data packets and processing encoded audioand video signals for rendering in a web browser. For example, thesystem components and resources 1924 of the SOC 1902 may include poweramplifiers, voltage regulators, oscillators, phase-locked loops,peripheral bridges, data controllers, memory controllers, systemcontrollers, access ports, timers, and other similar components used tosupport the processors and software clients running on a wirelessdevice. The system components and resources 1924 or custom circuitry1922 also may include circuitry to interface with peripheral devices,such as cameras, electronic displays, wireless communication devices,external memory chips, etc.

The SOC 1902 may further include an input/output module (notillustrated) for communicating with resources external to the SOC, suchas a clock 1906 and a voltage regulator 1908. Resources external to theSOC (such as clock 1906, voltage regulator 1908) may be shared by two ormore of the internal SOC processors/cores.

In addition to the example computing system 1900 discussed above, someembodiments may be implemented in a wide variety of other computingsystems, which may include a single processor, multiple processors,multicore processors, or any combination thereof.

Various embodiments may be implemented on a variety of wireless devicesan example of which is illustrated in FIG. 20 in the form of asmartphone. A smartphone 2000 may include a system on chip 1902 asdescribe with reference to FIG. 19. Additionally, the smartphone 2000may include an antenna 2004 for sending and receiving electromagneticradiation that may be connected to a wireless data link and/or cellulartelephone transceiver 2008 coupled to one or more processors in the SOC1902. Smartphones 2000 typically also include menu selection buttons orrocker switches 2020 for receiving user inputs.

A typical smartphone 2000 also includes a display 2012 coupled to thesystem on chip 1902. A typical smartphone 2000 also includes a soundencoding/decoding (CODEC) circuit 2006, which digitizes sound receivedfrom a microphone into data packets suitable for wireless transmissionand decodes received sound data packets to generate analog signals thatare provided to the speaker 2014 to generate sound. Also, one or more ofthe processors in the SOC 1902, transceiver 2008 and CODEC circuit 1706may include a digital signal processor (DSP) circuit (not shownseparately).

As used in this application, the phrases “telecommunications serviceprovider” “telecommunications operator,” “service provider network,”“operator network” and the like are used interchangeably herein any mayrefer to any network, entity or component suitable for providing userswith access to the Internet or internet protocol (IP) services. Examplesof wireless network technologies and networks that may be includedwithin a service provider network include third generation partnershipproject (3GPP), long term evolution (LTE) systems, third generationwireless mobile communication technology (3G), fourth generationwireless mobile communication technology (4G), fifth generation wirelessmobile communication technology (5G), global system for mobilecommunications (GSM), universal mobile telecommunications system (UMTS),high-speed downlink packet access (HSDPA), 3GSM, general packet radioservice (GPRS), code division multiple access (CDMA) systems (e.g.,cdmaOne, CDMA2000™), enhanced data rates for GSM evolution (EDGE),advanced mobile phone system (AMPS), digital AMPS (IS-136/TDMA),evolution-data optimized (EV-DO), digital enhanced cordlesstelecommunications (DECT), Worldwide Interoperability for MicrowaveAccess (WiMAX), wireless local area network (WLAN), Wi-Fi ProtectedAccess I & II (WPA, WPA2), Bluetooth®, land mobile radio (LMR), andintegrated digital enhanced network (iden). Each of these wired andwireless technologies involves, for example, the transmission andreception of data, signaling and/or content messages.

Any references to terminology and/or technical details related to anindividual wired or wireless communications standard or technology arefor illustrative purposes only, and not intended to limit the scope ofthe claims to a particular communication system or technology unlessspecifically recited in the claim language.

As used in this application, the terms “component,” “system,” “engine,”and the like may be used herein to refer to a computer-related entity(e.g., hardware, firmware, a combination of hardware and software,software, software in execution, etc.) that is configured to performparticular operations or functions. For example, a component may be, butis not limited to, a process running on a processor, a processor, anobject, an executable, a thread of execution, a program, and/or acomputing device. By way of illustration, both an application running ona computing device and the computing device may be referred to as acomponent. One or more components may reside within a process and/orthread of execution and a component may be localized on one processor orcore and/or distributed between two or more processors or cores. Inaddition, these components may execute from various non-transitorycomputer readable media having various instructions and/or datastructures stored thereon. Components may communicate by way of localand/or remote processes, function or procedure calls, electronicsignals, data packets, memory read/writes, and other known computer,processor, and/or process related communication methodologies.

The foregoing method descriptions and the process flow diagrams areprovided merely as illustrative examples and are not intended to requireor imply that the blocks of the various embodiments must be performed inthe order presented. As will be appreciated by one of skill in the artthe order of blocks in the foregoing embodiments may be performed in anyorder. Words such as “thereafter,” “then,” “next,” etc. are not intendedto limit the order of the blocks; these words are simply used to guidethe reader through the description of the methods. Further, anyreference to claim elements in the singular, for example, using thearticles “a,” “an” or “the” is not to be construed as limiting theelement to the singular.

The various illustrative logical blocks, modules, circuits, andalgorithm blocks described in connection with the embodiments disclosedherein may be implemented as electronic hardware, computer software, orcombinations of both. To clearly illustrate this interchangeability ofhardware and software, various illustrative components, blocks, modules,circuits, and blocks have been described above generally in terms oftheir functionality. Whether such functionality is implemented ashardware or software depends upon the particular application and designconstraints imposed on the overall system. Skilled artisans mayimplement the described functionality in varying ways for eachparticular application, but such implementation decisions should not beinterpreted as causing a departure from the scope of the presentinvention.

The hardware used to implement the various illustrative logics, logicalblocks, modules, and circuits described in connection with theembodiments disclosed herein may be implemented or performed with ageneral purpose processor, a digital signal processor (DSP), anapplication specific integrated circuit (ASIC), a field programmablegate array (FPGA) or other programmable logic device, discrete gate ortransistor logic, discrete hardware components, or any combinationthereof designed to perform the functions described herein. Ageneral-purpose processor may be a microprocessor, but, in thealternative, the processor may be any conventional processor,controller, microcontroller, or state machine. A processor may also beimplemented as a combination of computing devices, e.g., a combinationof a DSP and a microprocessor, a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any other suchconfiguration. Alternatively, some blocks or methods may be performed bycircuitry that is specific to a given function.

The functions described in various embodiments may be implemented inhardware, software, firmware, or any combination thereof. If implementedin software, the functions may be stored as one or more instructions orcode on a non-transitory computer-readable storage medium ornon-transitory processor-readable storage medium. The steps of a methodor algorithm disclosed herein may be embodied in a processor-executablesoftware module which may reside on a non-transitory computer-readableor processor-readable storage medium. Non-transitory computer-readableor processor-readable storage media may be any storage media that may beaccessed by a computer or a processor. By way of example but notlimitation, such non-transitory computer-readable or processor-readablemedia may include RAM, ROM, EEPROM, FLASH memory, CD-ROM or otheroptical disk storage, magnetic disk storage or other magnetic storagedevices, or any other medium that may be used to store desired programcode in the form of instructions or data structures and that may beaccessed by a computer. Disk and disc, as used herein, includes compactdisc (CD), laser disc, optical disc, digital versatile disc (DVD),floppy disk, and Blu-ray disc where disks usually reproduce datamagnetically, while discs reproduce data optically with lasers.Combinations of the above are also included within the scope ofnon-transitory computer-readable and processor-readable media.Additionally, the operations of a method or algorithm may reside as oneor any combination or set of codes and/or instructions on anon-transitory processor-readable medium and/or computer-readablemedium, which may be incorporated into a computer program product.

The preceding description of the disclosed embodiments is provided toenable any person skilled in the art to make or use the claims. Variousmodifications to these embodiments will be readily apparent to thoseskilled in the art, and the generic principles defined herein may beapplied to other embodiments without departing from the scope of theclaims. Thus, the claims are not intended to be limited to theembodiments shown herein but are to be accorded the widest scopeconsistent with the following claims and the principles and novelfeatures disclosed herein.

What is claimed is:
 1. A method of reducing durations of sessions,comprising: receiving an instruction message from a customer servicecenter associated with an enterprise; determining whether a mobiledevice user has engaged the customer service center associated with theenterprise within a proceeding duration; selecting a media element basedon the received instruction message in response to determining that themobile device user has engaged the customer service center associatedwith the enterprise within the proceeding duration; and rendering theselected media element on a screen of a mobile device of the mobiledevice user until the mobile device user interacts with the mobiledevice or the rendered media element.
 2. The method of claim 1, wherein:determining whether the mobile device user has engaged the customerservice center associated with the enterprise within the proceedingduration comprises: determining whether a text message has been sentfrom the mobile device to the customer service center associated withthe enterprise within the proceeding duration; and selecting the mediaelement based on the received instruction message in response todetermining that the mobile device user has engaged the customer servicecenter associated with the enterprise within the proceeding durationcomprises: selecting the media element based on the received instructionmessage in response to determining that the text message has been sentfrom the mobile device to the customer service center associated withthe enterprise within the proceeding duration.
 3. The method of claim 2,wherein determining whether the text message has been sent from themobile device to the customer service center associated with theenterprise within the proceeding duration comprises determining at leastone or more of: determining whether a short message service (SMS)message has been sent from the mobile device to the customer servicecenter associated with the enterprise within the proceeding duration;determining whether a multimedia messaging service (MMS) message hasbeen sent from the mobile device to the customer service centerassociated with the enterprise within the proceeding duration; ordetermining whether an instant messaging (IM) message has been sent fromthe mobile device to the customer service center associated with theenterprise within the proceeding duration.
 4. The method of claim 1,wherein: determining whether the mobile device user has engaged thecustomer service center associated with the enterprise within theproceeding duration comprises: determining whether a voice call has beenestablished between the mobile device and the customer service centerassociated with the enterprise; and selecting the media element based onthe received instruction message in response to determining that themobile device user has engaged the customer service center associatedwith the enterprise within the proceeding duration comprises: selectingthe media element based on the received instruction message in responseto determining that the voice call has been established between themobile device and the customer service center associated with theenterprise.
 5. The method of claim 4, wherein rendering the selectedmedia element on the screen of the mobile device of the mobile deviceuser until the mobile device user interacts with the mobile device orthe rendered media element comprises: rendering the selected mediaelement on the screen of the mobile device prior to terminating thevoice call to the customer service center associated with the enterpriseand until the mobile device user interacts with the mobile device or therendered media element.
 6. The method of claim 1, wherein receiving theinstruction message from the customer service center associated with theenterprise comprises: receiving a command to trigger a campaign on themobile device, wherein the command is selected by a server or a customerservice representative based on at least one or more of: a questionasked by the mobile device user via a text message sent from the mobiledevice to the customer service center; or a question asked by the mobiledevice user during a voice call between the mobile device and thecustomer service center.
 7. The method of claim 1, further comprising:monitoring activities of the mobile device user; and predicting, basedon at least one of the monitored activities or information received froma server device, a reason that the mobile device user has engaged thecustomer service center.
 8. The method of claim 7, further comprising:sending the predicted reason to a server associated with the customerservice center.
 9. The method of claim 7, wherein selecting the mediaelement based on the received instruction message in response todetermining that the mobile device user has engaged the customer servicecenter associated with the enterprise within the proceeding durationcomprises: selecting the media element based on the predicted reasonthat the mobile device user has engaged the customer service center. 10.A mobile device, comprising: a processor configured with processorexecutable software instructions to perform operations comprising:receiving an instruction message from a customer service centerassociated with an enterprise; determining whether a mobile device userhas engaged the customer service center associated with the enterprisewithin a proceeding duration; selecting a media element based on thereceived instruction message in response to determining that the mobiledevice user has engaged the customer service center associated with theenterprise within the proceeding duration; and rendering the selectedmedia element on a screen of the mobile device until the mobile deviceuser interacts with the mobile device or the rendered media element. 11.The mobile device of claim 10, wherein the processor is configured withprocessor executable software instructions to perform operations suchthat: determining whether the mobile device user has engaged thecustomer service center associated with the enterprise within theproceeding duration comprises determining whether a text message hasbeen sent from the mobile device to the customer service centerassociated with the enterprise within the proceeding duration; andselecting the media element based on the received instruction message inresponse to determining that the mobile device user has engaged thecustomer service center associated with the enterprise within theproceeding duration comprises selecting the media element based on thereceived instruction message in response to determining that the textmessage has been sent from the mobile device to the customer servicecenter associated with the enterprise within the proceeding duration.12. The mobile device of claim 11, wherein the processor is configuredwith processor executable software instructions to perform operationssuch that determining whether the text message has been sent from themobile device to the customer service center associated with theenterprise within the proceeding duration comprises determining at leastone or more of: determining whether a short message service (SMS)message has been sent from the mobile device to the customer servicecenter associated with the enterprise within the proceeding duration;determining whether a multimedia messaging service (MMS) message hasbeen sent from the mobile device to the customer service centerassociated with the enterprise within the proceeding duration; ordetermining whether an instant messaging (IM) message has been sent fromthe mobile device to the customer service center associated with theenterprise within the proceeding duration.
 13. The mobile device ofclaim 10, wherein the processor is configured with processor executablesoftware instructions to perform operations such that: determiningwhether the mobile device user has engaged the customer service centerassociated with the enterprise within the proceeding duration comprisesdetermining whether a voice call has been established between the mobiledevice and the customer service center associated with the enterprise;and selecting the media element based on the received instructionmessage in response to determining that the mobile device user hasengaged the customer service center associated with the enterprisewithin the proceeding duration comprises selecting the media elementbased on the received instruction message in response to determiningthat the voice call has been established between the mobile device andthe customer service center associated with the enterprise.
 14. Themobile device of claim 13, wherein the processor is configured withprocessor executable software instructions to perform operations suchthat rendering the selected media element on the screen of the mobiledevice of the mobile device user until the mobile device user interactswith the mobile device or the rendered media element comprises renderingthe selected media element on the screen of the mobile device prior toterminating the voice call to the customer service center associatedwith the enterprise and until the mobile device user interacts with themobile device or the rendered media element.
 15. The mobile device ofclaim 10, wherein the processor is configured with processor executablesoftware instructions to perform operations such that receiving theinstruction message from the customer service center associated with theenterprise comprises: receiving a command to trigger a campaign on themobile device, wherein the command is selected by a server or a customerservice representative based on at least one or more of: a questionasked by the mobile device user via a text message sent from the mobiledevice to the customer service center; or a question asked by the mobiledevice user during a voice call between the mobile device and thecustomer service center.
 16. The mobile device of claim 10, wherein theprocessor is configured with processor executable software instructionsto perform operations further comprising: monitoring activities of themobile device user; and predicting, based on at least one of themonitored activities or information received from a server device, areason that the mobile device user has engaged the customer servicecenter.
 17. The mobile device of claim 16, wherein the processor isconfigured with processor executable software instructions to performoperations further comprising: sending the predicted reason to a serverassociated with the customer service center.
 18. The mobile device ofclaim 16, wherein the processor is configured with processor executablesoftware instructions to perform operations such that selecting themedia element based on the received instruction message in response todetermining that the mobile device user has engaged the customer servicecenter associated with the enterprise within the proceeding durationcomprises: selecting the media element based on the predicted reasonthat the mobile device user has engaged the customer service center. 19.A non-transitory computer readable storage medium having stored thereonprocessor-executable software instructions configured to cause aprocessor in a mobile device to perform operations for reducingdurations of sessions, the operations comprising: receiving aninstruction message from a customer service center associated with anenterprise; determining whether a mobile device user has engaged thecustomer service center associated with the enterprise within aproceeding duration; selecting a media element based on the receivedinstruction message in response to determining that the mobile deviceuser has engaged the customer service center associated with theenterprise within the proceeding duration; and rendering the selectedmedia element on a screen of the mobile device until the mobile deviceuser interacts with the mobile device or the rendered media element. 20.The non-transitory computer readable storage medium of claim 19, whereinthe stored processor-executable software instructions are configured tocause a processor to perform operations such that: determining whetherthe mobile device user has engaged the customer service centerassociated with the enterprise within the proceeding duration comprisesdetermining whether a voice call has been established between the mobiledevice and the customer service center associated with the enterprise;and selecting the media element based on the received instructionmessage in response to determining that the mobile device user hasengaged the customer service center associated with the enterprisewithin the proceeding duration comprises selecting the media elementbased on the received instruction message in response to determiningthat the voice call has been established between the mobile device andthe customer service center associated with the enterprise.